Peer-to-peer geolocation system

ABSTRACT

A method and apparatus for location sharing, consisting of sending a location report by a location determining device to a plurality of network enabled devices over a peer-to-peer network, the location determining device being associated with a first digital key pair. A first of the plurality of network enabled devices, associated with a second digital key pair, performs a validation computation on the location report and submits a validation computation result and the location report to a remainder of the plurality of network enabled devices for inclusion in a shared ledger. Including the location report creates commercially-valued credits associated with the public key of the second digital key pair recorded in the shared ledger. A transfer of commercially-valued credits from association with the first public key of the first digital key pair to the public key of the second digital key pair is also recorded in the shared ledger.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/876,160, filed on Jan. 21, 2018, which is a continuation of U.S.patent application Ser. No. 14/981,803, filed Dec. 28, 2015, now U.S.Pat. No. 9,894,485, issued on Feb. 13, 2018, the entire disclosure ofwhich are hereby incorporated by reference.

TECHNICAL FIELD

The invention relates to computer systems and methods for reporting andrecording device locations, and more specifically to the reporting ofdevice locations to a shared file, distributed and maintained over apeer-to-peer network.

BACKGROUND OF THE INVENTION

An entity such as a parent of a child, a haulage company or deliveryservice, a prison system, or a car rental company, may need to track alocation of users or assets, for example but not limited to: ensuringsafety, for legal reasons, or in order to secure such assets.

A common method for reporting and storing location data is in a databaseconnected to a network such as are known from US2014074667.

If a location data is recorded in a database maintained by the entity,there are high costs associated with installing and maintaining thehardware and network infrastructure.

If the location is recorded in a facility maintained by a third partysuch as a data storage provider, then there is a risk that due tonetwork failure or other technical issues the data storage facility willat some times not be available to be queried by the entity, or to bewritten to by a location aware device to be tracked by the entity. Inextreme cases the location data may be irretrievably lost.

Furthermore, if the database is maintained by the third party, there isa risk that the location data may be revealed to other parties, hacked,corrupted, or otherwise altered, without the knowledge of the entity orpossibly the third party.

It is the intention of the present invention to address the shortcomingsof the prior art, i.e. the problems of establishing and maintaining anetwork enabled data storage system, ensuring the integrity of thestored data, and providing always-available data access for users of thesystem. Furthermore, if the method used is based on a distributedsystem, no individual maintenance costs arise, there is no single pointof failure, and through an inherent cryptographic structure integrity ismaintained.

SUMMARY OF THE INVENTION

In accordance with the present invention, a solution is provided forreporting, storing and subsequently retrieving the locations of devicesor objects in a distributed and secure manner. The problems areestablishing and maintaining a network enabled data storage system,ensuring the integrity of the stored data, and providingalways-available data access for users of the system. If the method usedis based on a distributed system, no individual maintenance costs arise,there is no single point of failure, and through an inherentcryptographic structure integrity is maintained.

Embodiments of the invention are based on the reporting of location in alocation report by a network enabled location determining devicecommunicating through a peer-to-peer network system to a plurality ofnetwork enabled devices. A first of the plurality of network enableddevices performs a validation computation on the location report andforwards a result of the validation computation to the plurality ofnetwork enabled devices for inclusion in a shared ledger of locationreports.

The network enabled location determining device may include a locationmodule that may comprise a global navigation satellite system receiver(GNSS receiver), a magnetometer, an accelerometer, an altimeter, and agyroscopic sensor for determining the location of the device. Furthermethods and apparatus for determining the location of the device mayinclude trilateration or time difference of arrival calculations using awireless local area network (WLAN), Bluetooth, or a wireless wide areanetwork (WWAN) positioning method, position determination usingfluctuations in a detected magnetic field, or a hybrid combination ofall the aforementioned systems to produce an accurate location fix.

The decision by the network enabled location determining device todetermine and report a location may be triggered through: an externalrequest over a communication network channel; on a regular timed basis,for example but not limited to one location determination every tenminutes; an external trigger detected by the network enabled device'ssensors, for example due to a change in motion detected by theaccelerometer or a change in orientation detected by the gyroscopicsensor or magnetometer; a completion of a computation on the networkenabled location determining device; or some other internal or externalevent.

In some embodiments of the invention the location report may be signedby the network enabled location determining device using an associatedpublic-private key pair, for example using the ECDSA signature scheme,the ElGamal signature scheme, the DSA signature scheme, or some otherasymmetric key infrastructure.

In further embodiments of the invention at least part of the locationreport may be encrypted using an asymmetric or symmetric cryptographickey generated by the network enabled location determining device, toprevent unauthorized third parties from scanning the shared ledger andextracting the location of the location determining network enableddevice at reported times. The cryptographic key may then be shared withselected parties in subsequent reports submitted for inclusion in theshared ledger, or the cryptographic key may be encrypted with the publickey of a public-private key pair and appended to the location report.

When the location report is submitted to the peer-to-peer network, asubset of the plurality of network enabled devices associated with thepeer-to-peer network may forward copies of the location to a remainderof the plurality of network enabled devices. Network enabled devices onthe peer-to-peer network may be standard nodes, in that they forwardlocation reports on to other devices on the peer-to-peer network, orthey may be “miners”, which are nodes that also perform validationcomputations on a submitted location report in order to solve aproof-of-work or other computationally difficult problem that confirmsto other nodes and miners that the submitted location report should beadded to the shared ledger.

The first of the plurality of network enabled devices to successfullygenerate a validation computation result may submit this, together withthe location report, to the peer-to-peer network. The remainder ofplurality of network enabled devices may then check the validationcomputation. If it is correct, they may add it to the shared ledger. Inthis manner, the location report is stored in the shared ledger forfuture retrieval and examination.

In order to provide an incentive for third parties to join thepeer-to-peer network as miners, a commercially-valued credit system maybe associated with the described system. When the validation computationresult and location reports are submitted to the peer-to-peer network bythe first of the plurality of network enabled devices, it may alsosubmit a notification that a number of commercially-valued credits areto be credited to a public key of a private-public key pair generated bythe first of the plurality of network enabled devices. When theremainder of the plurality of network enabled devices add the locationreport and the validation computation result to the shared ledger, theyalso add this notification to the shared ledger.

A submission comprising one or more location reports, a validationcomputation result and a commercially-valued credit notification willhenceforth be described as a “block”. The awarding ofcommercially-valued credits on successfully producing an accepted blockprovides third parties with a motivation to allocate computing resourcesand hardware to work on the production of blocks. Blocks may also beconstructed to comprise a transaction report that reallocatescommercially-valued credits from a first public key to a second publickey, by signing the transaction report with a private key of the firstpublic key.

In another embodiment, the location report submitted by the locationdetermining network enabled device may contain an offer ofcommercially-valued credits that are allocated to a public key of thepublic-private key pair associated with the location determining networkenabled device. The commercially-valued credits may then be claimed bythe first of the plurality of network enabled devices to produce a blockaccepted into the public ledger, for example by including a transactionnotification in the block that reallocates the commercially-valuedcredits to the public key of the first of the plurality of networkenabled devices.

Those skilled in the art will further appreciate the advantages andsuperior features of the invention together with other important aspectsthereof on reading the detailed description that follows in conjunctionwith the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The components in the figures are not necessarily to scale, emphasisinstead being placed upon illustrating the principles of the presentinvention. In the figures, like reference numerals designatecorresponding parts throughout the different views.

FIG. 1 illustrates a peer-to-peer network with a location determiningnetwork enabled device and a plurality of network enabled devicesconnected to the peer-to-peer network, in accordance with an embodimentof the present invention.

FIG. 2 illustrates a location determining network enabled device, inaccordance with an embodiment of the present invention.

FIG. 3 is a flowchart that shows how the decision to produce a locationreport by the location determining network enabled device may be made.

FIG. 4 is a signal flow diagram providing a general overview of a methodcontrolling the flow of location data from the location determiningnetwork enabled device to the plurality of network enabled devicesconnected via a peer-to-peer network for inclusion in the shared ledger.

FIG. 5 is a flowchart that shows an example method for the first of theplurality of network enabled devices to generate and broadcast avalidation computation result, according to one embodiment of theinvention.

FIG. 6 is a block diagram illustrating the structure of a possibleembodiment of the blocks in shared ledger.

FIG. 7 is a flowchart illustrating a method for including a blockcontaining a location report and a commercially-valued credit allocationin a shared ledger, according to one embodiment of the invention.

FIG. 8 is a block diagram illustrating a possible structure of alocation report encrypted with a cryptographic key, and with thecryptographic key itself encrypted with a public key and appended to thelocation report.

DETAILED DESCRIPTION OF THE INVENTION

Aspects of this disclosure will be described in the context of anexemplary system of a plurality of location determining networkconnected devices and a plurality of network connected devicescommunicating through the medium of a peer-to-peer network system 100,as shown schematically in FIG. 1. As depicted, the peer-to-peer network108 is embodied within a packet switched network 101, through theinterconnection of the plurality of network connected devices on thepeer-to-peer network 108.

A location determining network enabled device 102 may connect to thepeer-to-peer network, either through a wireless connection byassociation with a wireless access point 103 as depicted in FIG. 1, oralternatively through a cellular base station, a Bluetooth connection,or other wireless connection that provides access to the packet switchednetwork. Alternatively, the location determining device may be connecteddirectly to the packet switched network through a wired connection.

Other devices connected the peer-to-peer network may include networkconnected devices acting as a “node” 104, 105 whose role is to maintaina list of other devices connected through the peer-to-peer network, andto forward on received network messages to those devices on the list,possibly independently, or possibly as a response to a request fromanother network connected device. As one skilled in the art will beaware, no individual node is required to have a complete list of alldevices, as the process of peer-to-peer networking only requires that aunion of a set of all nodes contains a complete list of all devices onthe peer-to-peer network, and for every pair of network connecteddevices there is a network route from one device to the other, possiblyvia a set of one or more nodes. Therefore, the only requirement to be aparticipant on the peer-to-peer network is to establish a connection toone or more of the nodes on said network.

Further devices connected via the peer-to-peer network may include oneor more network connected devices 106, 107 acting as a “miner”, whoserole is to receive or request location reports and other transactionmessages from the peer-to-peer network, process them according to themethods and processes to be described further below, and transmittingthe results of said processing back to the peer-to-peer network forinclusion in a shared ledger.

The devices described above may each be implemented through a systemcomprising a one or a plurality of: general purpose microprocessors,digital signal processors (DSPs), application specific instruction setprocessors (ASIPs), field programmable gate arrays (FPGAs), dedicatedapplication specific integrated chips (ASICs), or other equivalentintegrated or discrete logic circuitry and peripheral circuitry,connected to a tangible storage medium containing instructions whichwhen executed effect methods and techniques described below. Thetechniques additionally, or alternatively, may be realized at least inpart by a computer-readable communication medium or record carrier, thatcarries or communicates code in the form of instructions or datastructures and that can be accessed, read, and/or executed by acomputer.

An embodiment of the network connected location determining device 102is presented in FIG. 2, and is now discussed in further detail. Thenetwork connected location determining device 102 may comprise a CPU 240capable of executing instructions stored in a memory 242, andcontrolling other peripheral components through drivers 244 storedwithin the memory 242. Further storage 246 may be present.

Optionally, the network connected location determining device 102 mayalso include an integrated location determining module, comprising oneor more of a global navigation satellite system (GNSS) receiver 222, anantenna 202 for said GNSS receiver 222, and a sensor module 224,connected to one or more of an altimeter 216, a magnetometer 217, agyroscopic sensor 218, and an accelerometer 219. The integrated locationdetermining module may determine a longitude, a latitude, a heading, avelocity, an acceleration, and an altitude of the network connectedlocation determining device 102 to a degree of accuracy through the useof some or all of these components.

The network connected location determining device 102 may also includewireless components comprising one or more wireless modules implementedin firmware or hardware, including a wireless local area network (WLAN)module 210 such as a Wi-Fi adapter utilizing an 802.11 protocol, awireless wide area network (WWAN) module 212 such as GSM, LTE, or othercellular wireless data communication system, or a Bluetooth module 214,each with one or more associated antennas 208, 206 and 204 respectively.As desired, one or more antennas may be shared between the modules usingswitching techniques known to those skilled in the art. The wirelesscomponents may provide network connectivity to a packet switched networkand hence to the peer-to-peer network for the network connected locationdetermining device. Alternately the network connected locationdetermining device may be connected to the packet switching networkdirectly through a wired connection.

The wireless components may also be employed to obtain, or help obtain,a location through techniques such as, but not limited to, timedifference of arrival determination of data frames at the wirelesscomponent, signal strength determination, signal trilateration, andother wireless position techniques know to those skilled in the art.Furthermore, measurements from the wireless components can be used inconjunction with measurements from the GNSS module 222, and the sensormodule 224, to provide a hybrid or combined location result.

Components comprising the network connected location determining devicemay communicate through a bus 226, which may be implemented as aperipheral component interconnect express (PCIe) bus, a universal serialbus (USB), a universal asynchronous receiver/transmitter (UART) serialbus, a suitable advanced micro-controller bus architecture (AMBA)interface, a serial digital input output (SDIO) bus, or other equivalentinterface.

In FIG. 3 an exemplary list of possible events, triggers, or occurrencesis provided that may cause the network connected location determiningdevice to perform a location determining operation, generate a locationreport, and send the location report to the peer-to-peer network. Event302 is an internal step and represents a timer event, in which aone-time timer or a repeat timer may be triggered after a pre-set time,causing step 318 to be executed, in which the network connected locationdetermining device 102 generates and sends a location report.

Event 304 may represent a request from an external entity over thepacket switched network for step 318 to be executed. The externalrequest may be issued by an owner of the network connected locationdetermining device, or by a user or entity authorized by the owner, orthe option to issue the request may be open to any entity.

Event 306 may represent the network connected location determiningdevice detecting that the accelerometer sensor 219 has experienced achange in output sensor data, reflecting a change in acceleration of thenetwork connected location determining device, and may trigger step 318to be executed.

Event 308 may represent the network connected location determiningdevice detecting that the magnetometer sensor 217 has experienced achange in output sensor data, reflecting a change in heading of thenetwork connected location determining device or a movement through avarying magnetic field, and may trigger step 318 to be executed.

Event 310 may represent the network connected location determiningdevice detecting that the gyroscopic sensor 218 has experienced a changein output sensor data, reflecting a change in heading or a rotationabout an internal or external axis of the network connected locationdetermining device, and may trigger step 318 to be executed.

Event 312 may represent the network connected location determiningdevice detecting that the time difference of arrival of frame data inresponse to frame request data by the WLAN module 210, the WWAN module212 or the Bluetooth module 214, has increased or decreased, possiblyreflecting a change in the distance of the network connected locationdetermining device from an associated WLAN access point, a WWAN basestation or paired Bluetooth device, respectively, and may trigger step318 to be executed.

Event 314 may represent the network connected location determiningdevice detecting that its position has changed due to a changingposition report from the GNSS module 222, and may trigger step 318 to beexecuted.

Event 316 may represent the completion of some other internalcomputation result, and may trigger step 318 to be executed.

It will be appreciated by those skilled in the art that although FIG. 3shows a logical OR 320 applied to events 302, 304, 306, 308, 310, 312,314 and 316, any other logical operator or combination or logicaloperators could be applied. For example, the decision to execute step318 could be undertaken with a logical AND, NOR, or NAND, and appliedpairwise to any combination of the events.

A high level flow diagram illustrating one possible embodiment of thesystem and the steps taken therein is presented in FIG. 4. Theinteraction of the location determining network enabled device 102 withthe plurality of network connected devices, and specifically a networkconnected device functioning as a node 104, and a network connecteddevice functioning as a miner 106, and finally another one of theplurality of network connected devices 107, is shown. The flow of a datacomprising the location and other associated information determined bythe location determining network enabled device through the locationreport, inclusion in the successfully generated block, and the appendingof said block to the shared ledger is also illustrated through FIG. 4.

Once the network connected location determining device 102 hasdetermined a location and other associated data, it may generate alocation report 402. The location report may then be encapsulated in anetwork message 404 and sent on to the peer-to-peer network 406.

Once the location report encapsulated in the network message has beenreceived by a network connected device acting as a node 104, the nodemay forward the message to other network connected devices on thepeer-to-peer network 408. Other network connected devices may also makerequests to the node for network messages that they have not yetreceived. Through these means, the location report encapsulated in thenetwork message is forwarded to all interested parties on thepeer-to-peer network.

Through these network interactions, the location report encapsulated inthe network message may arrive at a network connected device acting as aminer 106. The miner may then extract the location report from thenetwork message as per step 410. After the location report has beenobtained, the miner may construct a block containing the locationreport, a nonce, and any other location reports that the miner haspreviously received and that have not yet been included in the sharedledger as noted in step 412. The block may also contain other messagesand elements, which will be detailed further below. The miner may thenperform a validation computation on the block 414, further details ofwhich will be provided below. For now, it suffices to note that thevalidation computation will either return a correct result, or a failureas per step 416. If the validation computation returns a failure, theminer may alter the nonce as per step 417, for example if it is aninteger by incrementing or decrementing the value of the number by achosen amount, or by choosing a new random value, and may then repeatthe validation computation on the new block as per step 414. If thevalidation computation is correct, the block has been successfullyverified and the miner may transmit it to the peer-to-peer network 418.

Through transmission to the peer-to-peer network, the block may arriveat another network connected device 107, which may constitute anotherminer, or another node. The network connected device 107 may then repeatthe same validation computation on the block 420 as previously performedby the miner 106 in step 414, and the validation computation will returneither a successful result or a failure 422. If the computation resultis a failure, the network connected device 107 may discard the block, asshown in step 424. If the validation computation produces a successfulresult, then the network connected device 107 may add the block to acopy of the shared ledger 426.

FIG. 5 presents a flowchart providing further details for one possibleembodiment of a miner, and provides a specification for the steps takenonce a location report or a plurality of location reports have beenreceived by a network connected device acting as a miner. In step 502the miner generates a header for a new block, which in one embodimentmay contain data indicating the start of the block, and may contain alink back to the last accepted block in the shared ledger, for examplethrough inclusion of a hash of the previous block. The header may alsocontain a time stamp.

In step 504 the miner may append a message to the block, commonly knownto those skilled in the art as a “block reward”, which allocates anumber of commercially-valued credits to a public key associated with anetwork connected device. In other embodiments the number ofcommercially-valued credits may be associated with one or more of: anemail address, an IP address or a MAC address.

In step 506 the miner may append none, one, or a plurality of locationreports received from the peer-to-peer network to the block. The minermay also append a count of the number of reports added to the block.

In step 508 the miner may insert a nonce into the block. The nonce maycomprise a number, a string, or a binary data, and may be selectedrandomly or according to a predetermined algorithm, for example, thenonce may initially be the number 1, and subsequently incremented by oneuntil a successful result is returned from the validation computation.

In step 510 the miner may conduct a validation computation on the blockin its current state. The validation computation may comprise applying aone or more hash functions to the block, and then possibly applying theone or more hash functions or a different one or more hash functionsrepeatedly one or more times to the output of the previous hash functionapplied. The hash functions used may include SHA, RIPEMD, Whirlpool,Scrypt, HAS-160, or other cryptographic hash function where a hashoutput cannot be determined from hash input other than by theapplication of the cryptographic hash function to the hash input. Afinal result of step 510 may be a number.

In step 512 the final result is compared to a target value. The targetvalue may be a fixed value agreed upon by a plurality of participatingdevices in the peer-to-peer network, or it may be a dynamic valuedetermined in one embodiment by the average time taken for the miners inthe peer-to-peer network to produce the last K blocks, where K is afixed value agreed upon by the plurality of participating devices in thepeer-to-peer network. When the final result is compared to the targetvalue, the result may be determined to be successful if the final resultis greater than the target. In other embodiments of the invention theresult may be determined to be successful if the final result is greateror equal to the target value, or less than the target value, or lessthan or equal to the target value, or by some other Boolean operation onthe final result and the target value.

If the result of step 512 is “no”, then step 514 may be executed. Theminer may alter the nonce in the block, for example by incrementing itsvalue if it is a number, or by selecting a new nonce at random, and maythen proceed to step 510 again. The repeated cycle of step 510, step512, and step 514 is often described in the art as a “proof of work”effort.

If the result of step 512 is “yes”, then step 516 may be executed. Theminer may append a checksum or cryptographic hash to the block, whichallows third parties to verify that the preceding data is correct andhas not been altered or corrupted during data transfer.

Finally, the miner may execute step 520, by sending the completed blockto the peer-to-peer network for inspection by other network connecteddevices, and subsequent inclusion in the shared ledger.

FIG. 6 is a diagram defining one exemplary embodiment of a block interms of elements generated through the process described previously inFIG. 5. It should be noted that in although the elements for inclusionin the block are presented in a given order in the preferred embodimentdetailed above, the chosen ordering within the block may be decided inan arbitrary manner, provided all participants on the peer-to-peernetwork agree to the same ordering.

Element 602 is a header, and may comprise: an identifier indicating thatthe block is intended for a peer-to-peer geolocation system such as isdescribed in this disclosure; a link to the preceding block, for examplethrough a block number identifier or a cryptographic hash of thepreceding block; a time stamp.

Element 604 is an integer indicating the block size.

Element 606 is a nonce.

Element 608 is a commercially-valued credit allocation message, and mayinclude a claim to a number of commercially-valued credits to beallocated.

Element 610 is an integer indicating the number of location reportsincluded in the block. It can be zero, or an integer greater than zero.In FIG. 6 an example is presented in which N location reports areincluded in the block.

Element 612 is an example of a first location report received from thepeer-to-peer network and included in the block.

Element 614 is an example of a second location report received from thepeer-to-peer network and included in the block.

Element 616 is an example of an Nth location report received from thepeer-to-peer network and included in the block.

Element 618 is an integer indicating a number of transaction messagesmay be included in the block. It can be zero, or an integer greater thanzero. In FIG. 6 an example is presented in which M transaction messagesare included in the block. A transaction message may represent atransfer of commercially-valued credits from an allocation to a onepublic cryptographic key to an allocation to a second publiccryptographic key, and may be signed with a private cryptographic key toauthorize the transfer.

Element 620 is an example of a first transaction message received fromthe peer-to-peer network or generated by the miner and included in theblock.

Element 622 is an example of a second transaction message received fromthe peer-to-peer network or generated by the miner and included in theblock.

Element 624 is an example of a Mth transaction message received from thepeer-to-peer network or generated by the miner and included in theblock.

In a preferred embodiment of the invention, elements 602 through 624 maybe cryptographically hashed during the validation computation in theproof of work activity to provide a final result for comparison with thetarget value.

Element 626 is a checksum or cryptographic hash of elements 602 through624 that may be included in the block, for example to allow thirdparties to verify that the preceding data is correct and has not beenaltered or corrupted during data transfer. In one embodiment it may bethe result obtained from the proof of work activity during thevalidation computation.

One possible embodiment of a network connected device, henceforthreferred to as a verifier, for verifying a block submitted to thepeer-to-peer network by a miner is presented in FIG. 7. In step 702 thenetwork connected device may receive the block from the peer-to-peernetwork.

In step 704 the verifier may perform a same validation computation onthe submitted block, as performed by the miner.

In step 706 the verifier may examine a result to determine if the blocksatisfies the validation computation. If the result is “no”, the networkconnected device may proceed to step 708, in which the block isdiscarded. If the result is “yes”, the network connected device mayproceed to step 710, in which the shared ledger may be scanned forlocation reports or transaction messages matching those in the submittedblock.

The result from step 710 may be evaluated by the verifier in step 712.If the result of step 712 is “yes”, then duplicates have been found, andthe verifier proceeds to step 708, in which the block is discarded. Ifthe result of step 712 is “no”, then no duplicates were found, and theverifier proceeds to step 714, in which the block is added to the sharedledger.

FIG. 8 presents a possible embodiment of a location report message. Thelocation report header 802 may contain a marker indicating that the restof the message contains a location report, and other header informationsuch as the length of the report.

The location report may contain the public key 804, the network address806 and the email address 808 of the network connected locationdetermining device 102 that is to submit the location report.

A data payload of the location report may comprise a longitude 812, alatitude 814, an altitude 816, a time of position determination 818, anda position accuracy 820. The data payload may be encrypted with acryptographic symmetric key 810, for example to maintain the privacy ofthe location determined by the network connected location determiningdevice.

The location report may also comprise the symmetric key of 810 encryptedwith a public key 822 of an alternate network connected device. This mayallow the alternate network connected device to decrypt the symmetrickey using its private key, and subsequently decrypt the data payload812-820, using the decrypted symmetric key.

The location report may also comprise a digital signature 824, generatedwith the private key of the network connected location determiningdevice, in order to provide for the veracity of the submitted locationreport.

As will be appreciated from the above discussion, an advantage of thesystems and methods of this disclosure includes distributing effortrequired to maintain and extend a shared ledger, a file, or a databaseof location information pertaining to a plurality of network connectedlocation determining devices, thereby providing protection from anexistence of a single point of failure, and reducing cost to individualusers of the system. Further, these techniques offer protection of thelocation data stored through use of cryptographic keys and digitalsignatures. Finally, the techniques also allow for rewarding of ownersof network connected devices participating in the peer-to-peer networkand charging of owners or users of network connected locationdetermining devices providing location reports to the system.

What is claimed is:
 1. A method for recording location information on ashared ledger, the method comprising: receiving, by a first device of aplurality of network devices connected to a peer-to-peer network, alocation report, the first device being associated with a first networkaddress and a first public-private key pair, wherein the location reportincludes a symmetrically encrypted section, encrypted by a symmetrickey, containing information regarding at least one of: a longitude ofthe first device, a latitude of the first device, an altitude of thefirst device, a time of determining a location of the first device, alongitude of the first device, and an accuracy of the determinedlocation of the first device; performing, by the first device, avalidation computation on the location report to generate a firstvalidation result; transmitting, by the first device, the firstvalidation result and the location report through the peer-to-peernetwork, to a remainder of the plurality of network devices connected tothe peer-to-peer network; and decrypting, by a network device of theplurality of network devices, the location report using the symmetrickey.
 2. The method of claim 1, further comprising: producing, by thefirst device, the first validation result before any of the remainder ofthe plurality of network devices connected to the peer-to-peer networkproduce a validation result.
 3. The method of claim 2, wherein thevalidation computation comprises a proof of work algorithm based on oneor more of: a SHA hash, a RIPEMD hash, a Whirlpool hash, a Scrypt hash,a HAS-160 hash, or another cryptographic hash function.
 4. The method ofclaim 1, further comprising: creating a record of a number ofcommercially-valued credits associated with a public key of aprivate-public key pair associated with the first device; and includingthe record of the number of commercially-valued credits in the sharedledger along with the first validation result and the location report.5. The method of claim 4, further comprising: signing the locationreport with the private key of the public-private key pair of the firstdevice.
 6. The method of claim 1, further comprising: extracting fromthe location report, an offering of a number of commercially-valuedcredits associated with a second public key of a second private-publickey pair; and transferring the number of commercially-valued credits toa third public key of a third public-private key pair associated withthe first device, when including the first validation result and thelocation report in the shared ledger.
 7. The method of claim 1, furthercomprising: constructing a collection comprising a plurality of receivedlocation reports; determining a validation result for the collection;and adding the collection to the shared ledger.
 8. The method of claim6, further comprising: associating the commercially-valued credits withone or more of: a network address, a cryptographic key, or an emailaddress.
 9. A system comprising: a plurality of network devicesconnected to a peer-to-peer network, each network device comprising: oneor more processors; and storage media comprising computer instructions;wherein, on receiving, by a first device of the plurality of networkdevices, a location report, the computer instructions are executed onthe one or more processors of the first device and on the one or moreprocessors of a one or more of the plurality of network devices, suchthat operations are caused comprising: wherein the location reportincludes a symmetrically encrypted section, encrypted by a symmetrickey, containing information regarding at least one of: a longitude ofthe first device, a latitude of the first device, an altitude of thefirst device, a time of determining a location of the first device, alongitude of the first device, and an accuracy of the determinedlocation of the first device; performing, by the first device, avalidation computation on the location report to generate a firstvalidation result; transmitting, by the first device, the firstvalidation result, and the location report through the peer-to-peernetwork, to a remainder of the plurality of network devices connected tothe peer-to-peer network; and decrypting, by a network device of theplurality of network devices, the location report using the symmetrickey.
 10. The system of claim 9, wherein the first device is associatedwith a first network address and a first public-private key pair. 11.The system of claim 9, further comprising: producing, by the firstdevice, the first validation result before any of the remainder of theplurality of network devices connected to the peer-to-peer networkproduce a validation result.
 12. The system of claim 9, wherein thefirst validation result comprises: a proof of work algorithm based onone or more of: a SHA hash, a RIPEMD hash, a Whirlpool hash, a Scrypthash, a HAS-160 hash, or another cryptographic hash function.
 13. Thesystem of claim 10, further comprising: creating, by the first device, arecord of a number of commercially-valued credits associated with afirst public key of the first private-public key pair associated withthe first device; and including, by the remainder of the plurality ofnetwork devices, the record of the number of commercially-valued creditsin the shared ledger along with the first validation result.
 14. Thesystem of claim 13, further comprising: signing the location report, bythe first device, with the first private key of the first public-privatekey pair of the first device.
 15. The system of claim 10, furthercomprising: extracting, by the first device, and from the locationreport, an offering of a number of commercially-valued creditsassociated with a second public key of a second private-public key pair;generating, by the first device, a transfer notification of the numberof commercially-valued credits to the first public key of the firstpublic-private key pair associated with the first device; submitting, bythe first device, the transfer notification along with the firstvalidation result to the remainder of the plurality of network devices;and including in the shared ledger, by the remainder of the plurality ofnetwork devices, the first validation result, the location report, andthe transfer notification.
 16. The system of claim 9, furthercomprising: constructing, by the first device, a collection comprising aplurality of received location reports; determining, by the firstdevice, a validation result for the collection; and adding thecollection, by the remainder of the network devices, to the sharedledger.
 17. The system of claim 15, further comprising: associating, bythe plurality of network devices, the commercially-valued credits withone or more of: a network address, a cryptographic key, or an emailaddress.
 18. A non-transitory computer readable medium comprisinginstructions when read by a processor cause the processor to perform:receiving, by a first device of a plurality of network devices connectedto a peer-to-peer network, a location report, the first device beingassociated with a first network address and a first public-private keypair, wherein the location report includes a symmetrically encryptedsection, encrypted by a symmetric key, containing information regardingat least one of: a longitude of the first device, a latitude of thefirst device, an altitude of the first device, a time of determining alocation of the first device, a longitude of the first device, and anaccuracy of the determined location of the first device; performing, bythe first device, a validation computation on the location report togenerate a first validation result; transmitting, by the first device,the first validation result and the location report through thepeer-to-peer network, to a remainder of the plurality of network devicesconnected to the peer-to-peer network; and decrypting, by a networkdevice of the plurality of network devices, the location report usingthe symmetric key.
 19. The non-transitory computer readable medium ofclaim 1, wherein the processor is further configured to perform:producing, by the first device, the first validation result before anyof the remainder of the plurality of network devices connected to thepeer-to-peer network produce a validation result.
 20. The non-transitorycomputer readable medium of claim 1, wherein the processor is furtherconfigured to perform: creating a record of a number ofcommercially-valued credits associated with a public key of aprivate-public key pair associated with the first device; and includingthe record of the number of commercially-valued credits in the sharedledger along with the first validation result and the location report.